<template>
    <div class="person">
        <!-- 这里的 {{ }} 括起来的元素如果是RefImpl类型会自动调用其.value，无需手动声明 -->
        <h2>姓名: {{ name }}</h2>
        <h2>年龄: {{ age }}</h2>
        <button @click="changeName">修改姓名</button>
        <button @click="changeAge">修改年龄</button>
        <button @click="showTel">查看联系方式</button>
    </div>
</template>


<script lang="ts" setup name="Person">
    // 引入ref，实现响应式数据
    import {ref} from 'vue'
    // 定义数据
    let name = ref('张三') // 被ref包裹的元素就变为了RefImpl对象
    let age = ref(18)
    let tel = '15666968248'

    function changeName() {
        name.value = 'zhang-san' // 被ref包裹的对象重新赋值必须修改其.value值
    }

    function changeAge() {
        age.value += 1
    }
    function showTel() {
        alert(tel)
    }
</script>


<style scoped>
.person {
    background-color: skyblue;
    box-shadow: 0 0 10px;
    border-radius: 10px;
    padding: 20px;
}

button {
    margin: 0 5px;
}
</style>